package com.junzhiit.nengji.cms.service;

import java.util.Map;

import com.junzhiit.nengji.cms.web.vo.DataTablesParamVO;
import com.junzhiit.nengji.cms.web.vo.GoodsAddVO;
import com.junzhiit.nengji.cms.web.vo.GoodsEditVO;
import com.junzhiit.nengji.cms.web.vo.GoodsListVO;
import com.junzhiit.nengji.cms.web.vo.GoodsVO;
import com.junzhiit.nengji.cms.web.vo.ResultVO;

public interface GoodsService {

	/**
	 * 
	 * TODO 查询商品列表
	 * 
	 * @author FebRosy
	 * @time 2018年1月24日 下午7:50:21
	 * @return List<GoodsBO>
	 */
	public Map<String, Object> findPageAll(DataTablesParamVO dtp, GoodsListVO goodsListVO);

	/**
	 * 
	 * TODO 查询具体商品信息(单查商品表信息)
	 * 
	 * @author FebRosy
	 * @time 2018年1月26日 上午9:34:12
	 * @return ResultVO
	 */
	public ResultVO findById(String id);

	/**
	 * 
	 * TODO 添加商品信息
	 * 
	 * @author FebRosy
	 * @time 2018年1月24日 下午7:42:24
	 * @return ResultVO
	 */
	public ResultVO add(GoodsAddVO goodsAddVO);

	/**
	 * 
	 * TODO 修改商品信息
	 * 
	 * @author FebRosy
	 * @time 2018年1月24日 下午7:42:36
	 * @return ResultVO
	 */
	public ResultVO edit(GoodsEditVO goodsEditVO);

	/**
	 * 
	 * TODO 根据id获取商品(关联其他表)
	 * 
	 * @author FebRosy
	 * @time 2018年1月25日 下午2:45:06
	 * @return ResultVO
	 */
	public ResultVO findByIdForOther(String id);

	/**
	 * 
	 * TODO 批量上下架
	 * 
	 * @author FebRosy
	 * @time 2018年1月25日 下午4:23:12
	 * @return ResultVO
	 */
	public ResultVO batchUpdateStatus(String[] ids, Integer status,String sessionId);

	/**
	 * 
	 * TODO 上下架,申请再审核
	 * 
	 * @author FebRosy
	 * @time 2018年1月25日 下午7:18:44
	 * @return ResultVO
	 */
	public ResultVO updateStatus(String id, Integer status,String sessionId,String shopId);

	/**
	 * 
	 * TODO 商品审核通过或拒绝
	 * 
	 * @author Qjen
	 * @time 2018年2月9日 上午8:58:09
	 * @return ResultVO
	 *
	 */
	public ResultVO editStatus(GoodsVO goodsVO);

	/**
	 * 
	 * TODO 商品批量审核通过或拒绝(总部商品审核)
	 * 
	 * @author Qjen
	 * @time 2018年2月9日 上午9:36:08
	 * @return ResultVO
	 *
	 */
	public ResultVO batchEditStatus(String[] ids, Integer status,String auditFailDescription);

	/**
	 * 
	 * TODO 查询商品列表(总部商品审核)
	 * 
	 * @author Qjen
	 * @time 2018年2月8日 下午4:34:04
	 * @return Map<String,Object>
	 *
	 */
	public Map<String, Object> findAll(DataTablesParamVO dtp, GoodsListVO goodsListVO);
	
	/**
	 * 查询商品列表(总部商品审核)
	 * @author PeterMo
	 * @time 2018年2月8日 下午4:34:04
	 * @return ResultVO
	 */
	public Map<String, Object> goodsShopList(DataTablesParamVO dtp, String shopId,String goodsName,Integer status,Integer type);

	/**
	 * 
	 * TODO 总部强制下架商铺商品
	 * @author Zaki
	 * @time 2018年4月18日 上午10:05:02
	 * @return ResultVO
	 */
	public ResultVO updateGoodsStatus(String id,String auditFailDescription);
	
	/**
	 * 删除商品
	 * TODO
	 * @author FebRosy
	 * @time 2018年5月4日 上午10:46:02
	 * @return ResultVO
	 */
	public ResultVO delete(String id);
	
	/**
	 * 
	 * TODO 批量删除商品
	 * @author Harry
	 * @time 2018年7月16日 下午2:05:13
	 * @return ResultVO
	 */
	public ResultVO batchDeleteChainGoods(String[] ids);
	
	
	public Map<String, Object> findByProgram(DataTablesParamVO dtp, GoodsListVO goodsListVO);
	
	/**
	 * 
	 * TODO 获取店铺下的所有商品
	 * @author Harry
	 * @time 2018年9月6日下午3:31:15
	 * @return Map<String,Object>
	 */
	public ResultVO getAllGoods(String sessionId,String startTime,String endTime,String fullReductionId);
	
	/**
	 * 
	 * TODO 根据服务ID查找预约信息
	 * @author Zaki
	 * @time 2018年9月18日 下午8:28:58
	 * @return ResultVO
	 */
	public ResultVO findByGoodsId(String serveId);
}
